package com.example.springboot.controller.uploadFile.InstantTransmission;

import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.concurrent.ThreadLocalRandom;

/**
 *
 * 前端分为两个步骤：
 *
 * 计算文件的 MD5 值，计算之后发送给服务端确定文件是否存在。
 * 如果文件已经存在，则不需要继续上传文件；如果文件不存在，则开始上传文件，上传文件和 MD5 校验请求类似，上面的案例代码中我就没有重复演示了，松哥在书里和之前的课程里都多次讲过文件上传，这里不再啰嗦
 *
 *
 *
 * @author chenzhangkun
 * @ClassName InstantTransmission
 * @description: TODO
 * @date 2024年12月11日
 */
@RestController
@RequestMapping(value = "/file")
public class InstantTransmissionController {
	@PostMapping("/secondUpload")
	public String secondUpload(@RequestParam(value = "file",required = false) MultipartFile file, @RequestParam(required = false,value = "md5") String md5){
		try {
			// 检查数据库中是否已存在该文件
			boolean[] arr={true,false};
			if (arr[ThreadLocalRandom.current().nextInt(2)]) {
				return "已存在";
			}
			// 保存文件到服务器
			file.transferTo(new File("/path/to/save/" + file.getOriginalFilename()));
			// 保存文件信息到数据库

			return "成功";
		} catch (Exception e) {
			return "失败";
		}
	}
}
